1. Field of the Invention
This invention relates to the execution of computer programs, and relates more particularly to the execution of one or more computer application programs on one or more host computers under the control of a second computer.
2. Prior Art
There is a need in the data processing field for a single product configuration capable of addressing the following requirements in the computer industry:
1. The ability to develop and operate "user friendly" interfaces which, by providing added functional capability such as integration of data, result in computer systems which have a high degree of consistency and ease of operation through the use of techniques such as high function representations in the form of graphic icons and other graphics, and which are relatively easy for a user to learn, preferably in an intuitive way.
2. The ability for new computer systems to operate existing software packages, without modifications to those packages, and to retain the benefits currently found for those applications which run in a multiuser, multitasking, centralized computer which provides a high degree of storage capacity, processing capacity and information management services.
3. A method for transferring and exchanging data simultaneously among various different, often dissimilar, application programs and different, often dissimilar host computer systems under the control of another computer system.
Although there are various approaches which provide partial solutions to the above requirements, presently there is no set of products designed specifically to address all of these requirements. The current available approaches fall into two categories:
A. Move the application functionality to a cost effective, user-friendly, computer workstation environment which provides both the hardward and software tools and technology to add the functionality of a user-friendly interface to the application. For most business application uses, this computer workstation environment is obtained through the use of the class of microcomputers known as personal computers.
Although this approach has been used to effectively provide the benefit of the user-friendly interface, moving the application functionality involves various amounts of reengineering and rewriting in order to move, or "port", the application to this computer workstation environment. The costs of such reprogramming often makes this approach undesirable.
In addition, if the entire application software and data files are moved to this workstation environment, the workstation capacity, due in part to its cost effectiveness, often becomes a problem and the processing capacity required to provide the user-friendly interface functions plus the application processing is often beyond the capabilities of this workstation environment. In addition, the microprocessor technologies used in these workstations are often limited in the amount of storage which the workstation is capable of accessing. Even where the storage capacity is available in this workstation environment, the problems of distributed information management often outweigh the advantages obtained.
A hybrid approach allows the application software to operate in a secondary computer workstation but the data files remain in the multiuser, multitasking, centralized computer. The hybrid approach involves the use of an intelligent terminal or computer workstation in conjunction with the reprogramming of the central computer. In this approach, the application in the central computer is programmed to direct the workstation to perform many of the user-friendly functions at the appropriate time during the execution of the application. However, adding the user-friendly interface functionality involves various amounts of reengineering and rewriting of the application program, so that the costs of such reprogramming often make this approach undesirable. In addition, such an approach, to provide the maximum benefit, would obsolete the existing terminals used with the application.
This hybrid approach has the advantage of providing centralized information management services and the user-friendly interface while retaining the capacity of the multiuser, multitasking, central computer. Since this approach involves a secondary-to-host computer link, accessing data over that link often presents severe performance limitations. In addition, the processing capacity required to manage the user-friendly interface functions plus the application processing is often beyond the capabilities of the existing mainframe installation.
B. Add the user-friendly interface functionality to a multiuser, multitasking, centralized computer which provides a high degree of storage capacity, processing capacity and information management services. However, attempts to program the centralized computer to perform the user-friendly functions are usually limited by a lack of hardware, software tools and technology to provide such functions.
The attempts to provide a solution to the overall needs may be broken into two classes, non-invasive and invasive, with respect to the host environment.
Non-invasive
The non-invasive class require no change to the host application and they thus acquire the associated benefits of lower cost and risk to the overall user community. These type of solutions range from custom software for a specific application through assorted telecommunications utility packages.
Custom solutions, while presumably attaining complete satisfaction for the specific requirements, require ground-up development and costly maintenance and have limited extensibility. Telecommunications utility packages such as MicroPhone, Crosstalk, SmartComm, etc., address the fundamentals of monitoring the host data stream, but are limited to line-by-line serially organized transactions. They focus on the automation of repetitive sequences on behalf of the user with little support of adding value to or enhancing the user interfaces and services.
Complexity of a Non-Invasive Intermediary
A non-invasive approach requires the added function to serve as an intermediary between the host environment and the end user. To function effectively, the intermediary must remain responsive both to the host application and to the end user; that is,
(a) it must be able to detect a new signal from either host or user, and PA1 (b) it must be able to respond appropriately. PA1 (a) list the possible states or situations that may arise; PA1 (b) build into the program a test that permits it to recognize which state is it in; and PA1 (c) specify the action to be performed when each state is recognized. PA1 (a) more voluminous than a PC could contain, and PA1 (b) shared by a community of clients. PA1 1. To integrate the powers of separate computing systems in ways that permit a user to make joint use of more than one. PA1 2. To broaden the base of employees who can make effective use of the existing computer resources. PA1 3. To reduce and focus information presented to each class of user to what is relevant and meaningful in the user's context. PA1 4. To reduce the time and cost required to train users to make effective use of computer applications related to their work. PA1 5. To maximize the transfer of training between various applications by offering an integrated and consistent interface to a variety of systems. PA1 6. To maintain the usefulness of large installed systems whose fundamental processing is valid but whose user interface is cumbersome and obsolete. PA1 We have established normal communication and may now proceed; PA1 We can't get through now, but may try later; PA1 Out physical communication is OK, but we have been denied access; PA1 We have encountered a situation that doesn't match anything we recognize. PA1 The categories reported are established by the AIM, not by the host. PA1 The notification the WHOOP sends does not repeat what the host said (although it could do so if desired), but notifies the AIM which of various contingencies has occurred. PA1 An attractive easy-to-use interface can be prepared for host applications that previously lacked it. PA1 The user interface can apply common conventions and standards to a wide variety of applications. New users are thus shielded from the vagaries and inconsistencies of the host system. This PA1 It is unnecessary to rewrite existing host applications. The host can continue to serve its expert users in the established way while its new users take advantage of a radically revised interface without change or even without collaboration at the host. In this sense, the AIM and WHOOP are a non-invasive adjunct to the host. PA1 Analyze transmissions received from various host programs. PA1 Abstract from the information relevant to the user at the secondary computer. PA1 Manage an independent display of the information it has abstracted from the various host programs. PA1 Manage interaction with the human user at the secondary computer. PA1 Generate and transmit commands to the various host programs that:
By one means or another, a responsive program must be able to navigate from each of the possible states it may be in to a desired successor state. For an interactive application, "state" is the current situation of the host and the client. A standard technique is:
This fundamental structure is embodied in the case statement of standard programming languages, which starts with a test and lists the action to be taken for each of a list of possible outcomes. The action takes the program from one state to another state. In each possible new state, the program requires a new list of possible states for which to test, and a new list of actions to take when one of them is detected.
In principle, if the interaction of host and user can be described by "n" states, and if each state may be followed by another, then the application would require n! (that is n.times.(n-1).times.(n-2) . . . ) state-tests. In practice, the number of states that must be foreseen and tested is less than n! because some combinations are so unlikely that they can be safely neglected. Nevertheless, to maintain the responsiveness of the application, the number of program branches that must be provided is proportional to the factorial of the number of states.
This explains a major drawback in the development of effective non-invasive systems: while their prototypes are small, with a low number of distinct states, the programming task is manageable. However, the process of developing and refining the intermediary program requires identifying and responding to more and more states. Thus, the complexity of the application increases enormously with even fairly small increases in the number of states that the program must recognize. Simplified prototypes, recognizing a minimal number of states, can deal with them adequately, and may give the impression that the basic problem is solved and requires only polishing or refinement. This is misleading. Using the classical state-transition method, the amount of refinement necessary to bring the intermediary's responsiveness to a satisfactory level requires an enormous increase in the complexity of the program.
One of the features of the present invention is that it provides a new method for maintaining the responsiveness of an intermediary program which frees it from the enormous increase in complexity that has been required by existing methods.
Invasive
The invasive class involves changes to the host applications, producing a tightly coupled solution wherein the host application drives a graphic interface engine at the user workstation. This requires costly changes to the host environment and the associated problems of the maintenance of dual capabilities supporting users with old and new style interfaces. This approach is very sensitive to the data communications protocols in use with the host. Technologies available provide for complete transformation of the user interface such as with MacWorkstation from Apple Computer.
Personal Computers
A personal computer is not just a small version of a mainframe host computer. Despite the rapid development of ever more powerful small computers, the two still differ strikingly. Some such differences are:
Role of a host A host computer may have access to data that is:
Examples are the inventory of a manufacturer, the reservations of an airline, the auto registrations of a state, and the letters exchanged by a variety of correspondents. All of these entail not just large volumes of data, but also continual input and update from many sources. A small computer devoted to the work of an individual is inherently unsuited to the custody of such an information resource.
Role of a PC. A personal computer can respond to its users with an immediacy and detail that is not practical for a mainframe host. It can track the motion of a mouse in real time, or update the details of a graphic display to produce the visual effect of motion, or synthesize vibrations that produce the effect of speech. This requires a continual transfer of immense amounts of information, but only between the PC's screen, speaker or keyboard and its processor a few inches away. A host computer could as easily perform the calculations, but a host could not transfer the information quickly or cheaply enough over the communications link to a remote terminal.
Consequences of the different roles of PC and host.
Certain kinds of tasks are better suited to large central facilities. This is partly because of the bulk of the data and the "horsepower" required to process it, but it is primarily because some data is inherently central and shared. On the other hand, "user friendly" interfaces consume a great deal of computation simply to make them visually attractive and speedily responsive. From a strictly logical point of view, computation that serves only to make an application "friendly" is irrelevant to the data-processing task. Nevertheless, it is essential to making applications attractive and easy to use. Such computation is more economically performed by the PC at the user's fingertips than at a central facility.
A great many powerful and effective application programs exist for host mainframes. In general, they were developed without benefit of the attractive human interface possible on a PC, largely because such an interface was (and remains) impractical to a terminal connected by a low-bandwidth link. They were also developed without benefit of common standards or conventions. Thus, despite the fact that they perform work of undoubted value, they remain difficult to learn, awkward to use, and almost impossible to integrate or coordinate. Their conventions are so varied that the user who at last becomes skilled in one finds that skill of little help (or even a hindrance) in starting to use another.
The business community using computer facilities needs:
Faced with an urgent need to make better use of a large number of powerful yet hard-to-learn computer applications, the business community has been faced with a choice between unattractive alternatives: to embark on extensive training (in effect, to adapt their human users to complex and conflicting requirements of the various applications), or to rewrite and build a number of large and expensive application programs.